Expand description

Monoio is a pure io-uring based rust runtime. Part of the design is borrowed from tokio and tokio-uring. However, unlike tokio-uring which use uring over epoll, monoio is not based on another runtime, which makes it more efficient. Also, monoio is designed as thread-per-core model. Users don’t need to worry about Send and Sync of tasks and can use thread local storage. For example, if user wants to do collect and submit tasks, he can use thread local storage to avoid synchronization structures like Mutex; also, the submit task will always be executed on the same thread.

Modules

Utilities for working with buffers.

Filesystem manipulation operations.

IO traits

Useful macros.

Network related Currently, TCP/UnixStream/UnixDatagram are implemented.

Stream related. Why not futures stream? Because the GAT >_<

Task impl

Utilities for tracking time.

Common utils

Macros

Wait on multiple concurrent branches, returning when all branches complete.

Pins a value on the stack.

Wait on multiple concurrent branches, returning when the first branch completes, cancelling the remaining branches.

Wait on multiple concurrent branches, returning when all branches complete with Ok(_) or on the first Err(_).

Structs

Monoio runtime

Runtime builder

Functions

Spawns a new asynchronous task, returning a JoinHandle for it.

Start a monoio runtime.

Type Definitions

A specialized Result type for io-uring operations with buffers.

Attribute Macros